#pragma once
#include <Dynamics/ExtForce/gravity_cpu.h>

namespace PhysLeo
{

/**
 * gravity gpu module
 * G = mg
 */
template<typename T>
class GravityCuda : public GravityCpu<T>
{
public:
    /**
    * empty constructor
    */
    GravityCuda() = default;

    /**
    * virtual destructor
    */
    virtual ~GravityCuda() = default;

    /**
    * add gravity force on the force buffer data
    * @param force  force buffer data
    */
    void addGravityForce(std::shared_ptr<BufferData<glm::tvec3<T>>> force) override;
};

}